﻿#region License statement
// NJamb, a specification and delta-specification DSL
// Copyright (c) 2010-2011, Mark Knell
// Published under the MIT License; all other rights reserved
#endregion

#region using...
using System;
using System.Linq.Expressions;
#endregion

namespace NJamb.Parser.SubjectBuilders
{
    public interface ICollaboratingSubjectBuilder<THost>
        where THost : class
    {
        Expression<Func<THost>> Expression { get; }
        Lazy<string> LazyHostDescription { get; }
        string Describe<TSubject>(Expression<Func<THost, TSubject>> refinement);
        Lazy<string> Describe(Expression<Action<THost>> refinement);
    }
}
